Programs are sets of instructions for an ordered series of actions which cause processing systems hardware, such as a computer, to carry out specific tasks. Programs as a whole are divided into a number of categories based on the types of tasks performed. The two primary program categories are systems and applications programs. Systems programs, such as a personal computer operating system, are operable to control the inner workings of a processing system. In contrast, applications programs address the multitude of tasks for which processing systems are used. Systems programs thus handle such essential, but often invisible, chores as maintaining disk files and managing video screens, whereas applications programs perform such tasks as word processing and database management. Two additional categories of programs which are neither systems nor applications programs, although they contain elements of both, are network programs, which enable groups of processing systems to communicate, and language programs, which provide programmers with the means for writing all four types of programs.
Software is a special form of program which has been recorded onto a storage medium, such as a compact disc, a videotape or a floppy disk. Software enables programs to be easily transferred or copied from one storage medium to another. Further, software enables programs to be reused infinitely, avoiding the tedious task of reentering a program manually into the processing system hardware each time the program is used. Programs are often developed, and supported, by Software Houses for their customers, the end users. Software Houses distribute their programs as software and generally generate their profits either through sales revenues and/or licensing royalties.
Sales prices and licensing royalty rates are most often calculated based upon the maximum number of copies of a program which a particular customer intends to utilize. Software Houses are generally required to rely upon the honesty of customers when setting sales prices and licensing royalty rates because, as previously introduced, software may be freely copied. Thus, once the software has been distributed to the customer, the Software House has no realistic means for determining whether the software has been copied to a greater number of mediums than previously agreed upon by the Software House and its customer.
Accordingly, one object of the present invention is to ensure that purchasers or licensees of software do not improperly copy and utilize stored programs.
A second object of the invention is to provide a software security system and method which is fast, efficient and reliable.
A third object of the invention is to provide a security system and method which does not detrimentally impact run-time performance of protected programs.
A fourth object of the invention is to provide a security system and method which is cost effective to implement.